package com.internetCafes.spms.web.customer.bizservice.customer;

import com.internetCafes.spms.common.utils.entity.page.PageItemDTO;
import com.internetCafes.spms.common.utils.entity.page.PageItemVO;
import com.internetCafes.spms.web.customer.model.ExcelImportResultRes;
import com.internetCafes.spms.web.customer.model.customer.cooperation.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 客户合作记录业务层接口
 */
public interface IEntCustomerCooperationBizService {

    /**
     * 合作记录消耗金额变动日志
     *
     * @param cooperationId 合作记录id
     * @return 消耗记录变动日志
     */
    List<CustomerConsumeRes> consumeList(Long cooperationId);

    /**
     * 合作记录批量保存
     *
     * @param req 请求参数
     * @return excel如返回情况
     */
    ExcelImportResultRes batchSave(CooperationSaveBatchReq req);

    /**
     * 合作记录excel导入解析
     *
     * @param file 文件
     * @return 解析数据
     */
    List<CooperationImportExcel> cooperationImportExcel(MultipartFile file);

    /**
     * excel 导出
     *
     * @param req 请求赛选条件
     * @return excel数据
     */
    List<CooperationExcel> cooperationExcel(CooperationExcelReq req);

    /**
     * 客户合作记录分页
     *
     * @param req 请求参数
     * @return 分页数据
     */
    PageItemVO<CustomerCooperationPagingRes> paging(PageItemDTO<CustomerCooperationPagingReq> req);

    /**
     * 操作记录删除
     *
     * @param idList id列表
     * @return true/false
     */
    boolean deleteByIdList(List<Long> idList);

    /**
     * 合作记录更新
     *
     * @param req 请求参数
     * @return true/false
     */
    boolean update(CustomerCooperationUpdateReq req);

    /**
     * 新增
     *
     * @param req 请求参数
     * @return true/false
     */
    boolean save(CustomerCooperationSaveReq req);
}
